<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/8/15 0015
 * Time: 15:19
 */


/**
 * Tcp异步服务
 */
$serv = new swoole_server("127.0.0.1", 9501);

//设置异步任务的工作进程数量
$serv->set(array('task_worker_num' => 4));

$serv->on('receive', function($server, $fd, $from_id, $data) {
    //投递异步任务
    $task_id = $server->task($data);
    echo "异步任务投递成功: id=$task_id\n";
    $server->send($fd, "数据已接收，处理中...");
});

//处理异步任务
$serv->on('task', function ($server, $task_id, $from_id, $data) {
    echo "新的待处理异步任务[id=$task_id]".PHP_EOL;
    //返回任务执行的结果
    $server->finish("$data -> OK");
});

//处理异步任务的结果
$serv->on('finish', function ($serv, $task_id, $data) {
    echo "异步任务[$task_id] 处理完成: $data".PHP_EOL;
});

$serv->start();


/*
执行程序
php server.php
在命令行下运行server.php程序，启动成功后可以使用 netstat 工具看到，已经在监听9501端口。这时就可以使用telnet/netcat工具连接服务器。

telnet 127.0.0.1 9501
hello
Server: hello
*/